package net.zoneland.zrdp.biz.service;

import java.util.List;
import net.zoneland.zrdp.biz.domain.FlowMainInfo;

/**
 * 流程工单记录Service接口
 *
 * @author zonevue
 */
public interface IFlowMainInfoService {
    /**
     * 查询流程工单记录
     *
     * @param id 流程工单记录主键
     * @return 流程工单记录
     */
    FlowMainInfo selectFlowMainInfoById(Long id);

    /**
     * 查询流程工单记录列表
     *
     * @param flowMainInfo 流程工单记录
     * @return 流程工单记录集合
     */
    List<FlowMainInfo> selectFlowMainInfoList(FlowMainInfo flowMainInfo);


    /**
     * 综合查询
     *
     * @param flowMainInfo 流程工单记录
     * @return 流程工单记录集合
     */
    List<FlowMainInfo> integratedQuery(FlowMainInfo flowMainInfo);

    /**
     * 新增流程工单记录
     *
     * @param flowMainInfo 流程工单记录
     * @return 结果
     */
    int insertFlowMainInfo(FlowMainInfo flowMainInfo);

    /**
     * 修改流程工单记录
     *
     * @param flowMainInfo 流程工单记录
     * @return 结果
     */
    int updateFlowMainInfo(FlowMainInfo flowMainInfo);

    /**
     * 批量删除流程工单记录
     *
     * @param ids 需要删除的流程工单记录主键集合
     * @return 结果
     */
    int deleteFlowMainInfoByIds(Long[] ids);

    /**
     * 删除流程工单记录信息
     *
     * @param id 流程工单记录主键
     * @return 结果
     */
    int deleteFlowMainInfoById(Long id);

    /**
     * 根据workId或者piid查询工单信息.
     * @param workId 工单号.
     * @param piid 流程编码.
     * @return FlowMainInfo 工单信息
     **/
    FlowMainInfo getInfoByWorkIdOrPiid(final String workId, final String piid);

    /**
     * 根据piid查询工单.
     * @param piid 流程编码.
     * @return FlowMainInfo 工单信息
     **/
    FlowMainInfo getInfoByPiid(final String piid);
}
